asfservice api to use samsung product api, <script type="text/javascript" src="$webapis/webapis/webapis js"></script> should be loaded in index html this api enables initiating the allshare framework since 2 3 product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare summary of interfaces and methods interface method item webapiallshareobject allshare serviceconnectorobject serviceprovidercreatesuccesscallback void onsuccess serviceprovider serviceprovider ; serviceprovidererrorcallback void onerror webapierror error, servicestate state ; serviceconnector void createserviceprovider optional serviceprovidercreatesuccesscallback? successcallback, optional serviceprovidererrorcallback? errorcallback ;void deleteserviceprovider optional successcallback? successcallback, optional serviceprovidererrorcallback? errorcallback ;serviceprovider getserviceprovider ; serviceprovider devicefinder getdevicefinder ;servicestate getservicestate ; devicediscoverycallback void ondeviceadded device device ;void ondeviceremoved device device ; icon devicefinder device getdevice devicetype devicetype, deviceid id ;devicearray getdevicelist devicetype devicetype ;void refresh ;long adddevicediscoverylistener devicediscoverycallback devicediscoverycallback ;void removedevicediscoverylistener long devicediscoverylistener ; device mediaprovidersuccesscallback void onsuccess itemlist itemlist, boolean endofitems, deviceid providerid ; mediaprovidererrorcallback void onerror webapierror error, deviceid providerid ; mediaprovider void browse item folderitem, unsigned long startindex, unsigned long requestcount, mediaprovidersuccesscallback browsecallback, optional mediaprovidererrorcallback? errorcallback, optional abstractfilter? browsefilter, optional sortmode? sortmode ;void search domstring keyword, unsigned long startindex, unsigned long requestcount, mediaprovidersuccesscallback successcallback, optional mediaprovidererrorcallback? errorcallback, optional abstractfilter? searchfilter ; 1 type definitions 1 1 itemtype specifies the item type enum itemtype { "audio", "folder", "image", "unknown", "video" }; the following values are supported audio audio type folder folder type image image type unknown unknown media type video video type 1 2 servicestate specifies the asf service state enum servicestate { "disabled", "enabled", "unknown" }; the following values are supported disabled disabled enabled enabled unknown unknown 1 3 devicetype specifies the device types which can be discovered enum devicetype { "mediaprovider", "unknown" }; the following values are supported mediaprovider media provider unknown unknown device type 1 4 devicedomain specifies the network domain in which the device is located enum devicedomain { "local_network", "unknown" }; the following values are supported local_network located in a local network area unknown located in an unknown area 1 5 deviceid device identifier typedef domstring deviceid; 1 6 devicearray array of devices typedef sequence<device> devicearray; 1 7 iconarray array of icons typedef sequence<icon> iconarray; 1 8 itemlist array of items provided by a device on the network typedef sequence<item> itemlist; 2 interfaces 2 1 item constructs an object that represents a media item or folder [constructor domstring uri, optional domstring mimetype, optional domstring title ] interface item { readonly attribute domstring albumtitle; readonly attribute domstring artist; readonly attribute date date; readonly attribute unsigned long long duration; readonly attribute domstring extension; readonly attribute double filesize; readonly attribute domstring genre; readonly attribute domstring mimetype; readonly attribute unsigned long? width; readonly attribute unsigned long? height; attribute domstring? subtitleuri; readonly attribute domstring? thumbnailuri; attribute domstring title; readonly attribute itemtype itemtype; readonly attribute domstring itemuri; readonly attribute boolean isrootfolder; readonly attribute itemcontentbuildtype contentbuildtype; }; constructor item domstring uri, optional domstring mimetype, optional domstring title parameters uri item path mimetype [optional][nullable] item mime type title [optional][nullable] item title attributes readonly domstring albumtitle album title of the content readonly domstring artist artist name of the content readonly date date content creation date readonly unsigned long long duration duration or content total play time readonly domstring extension file extension of the content readonly double filesize file size of the content readonly domstring genre genre of the content readonly domstring mimetype mime type of the content readonly unsigned long width [nullable] width of the content readonly unsigned long height [nullable] height of the content domstring subtitleuri [nullable] subtitle uri of the content readonly domstring thumbnailuri [nullable] thumbnail image uri domstring title title of the content readonly itemtype itemtype item type of the content readonly domstring itemuri item uri of the content readonly boolean isrootfolder whether the item is a root folder readonly itemcontentbuildtype contentbuildtype build type of the content 2 2 webapiallshareobject defines an allshare object instance [nointerfaceobject] interface webapiallshareobject { readonly attribute allshare allshare; }; webapi implements webapiallshareobject; attributes readonly allshare allshare provides interfaces for acquiring allshare devices and connecting to them 2 3 allshare allshare root api [nointerfaceobject] interface allshare { }; 2 4 serviceconnectorobject defines a webapi object instance [nointerfaceobject] interface serviceconnectorobject { attribute serviceconnector serviceconnector; }; allshare implements serviceconnectorobject; attributes serviceconnector serviceconnector provides interfaces for connecting to the asf service 2 5 serviceprovidercreatesuccesscallback defines the callback invoked when a serviceprovider object is created successfully [callback=functiononly, nointerfaceobject] interface serviceprovidercreatesuccesscallback { void onsuccess serviceprovider serviceprovider ; }; methods onsuccess callback method invoked when a serviceprovider object is successfully created void onsuccess serviceprovider serviceprovider ; privilege level public privilege http //developer samsung com/privilege/allshare parameters serviceprovider created serviceprovider object code example // onsuccess sprovidercallback function sprovidercallback provider { console log "the service provider was obtained" ; } // define the serviceprovider creation error callback function eprovidercallback error, state { console log error name ; console log "current asf service state " + state ; } // try to create the serviceprovider object try { webapis allshare serviceconnector createserviceprovider sprovidercallback, eprovidercallback ; } catch e { console log e message ; } 2 6 serviceprovidererrorcallback defines the callback invoked if a serviceprovider object operation fails [callback=functiononly, nointerfaceobject] interface serviceprovidererrorcallback { void onerror webapierror error, servicestate state ; }; methods onerror callback method invoked if a serviceprovider operation fails void onerror webapierror error, servicestate state ; privilege level public privilege http //developer samsung com/privilege/allshare parameters error object indicating the error type and message state current service state code example // onerror eprovidercallback function sprovidercallback provider { console log "the service provider was obtained" ; } // define the serviceprovider creation error callback function eprovidercallback error, state { console log error name ; console log "current asf service state " + state ; } // try to create the serviceprovider object try { webapis allshare serviceconnector createserviceprovider sprovidercallback, eprovidercallback ; } catch e { console log e message ; } 2 7 serviceconnector provides the connection to the allshare framework asf service [nointerfaceobject] interface serviceconnector { void createserviceprovider optional serviceprovidercreatesuccesscallback? successcallback, optional serviceprovidererrorcallback? errorcallback ; void deleteserviceprovider optional successcallback? successcallback, optional serviceprovidererrorcallback? errorcallback ; serviceprovider getserviceprovider ; }; methods createserviceprovider creates a serviceprovider object void createserviceprovider optional serviceprovidercreatesuccesscallback? successcallback, optional serviceprovidererrorcallback? errorcallback ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters successcallback [optional][nullable] callback method to invoke if the request is successful errorcallback [optional][nullable] callback method to invoke if the request fails exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type notsupportederror, if this feature is not supported with error type invalidvalueserror, if any input parameter contains an invalid value with error type unknownerror, for any other error with error type securityerror, if the application does not have the privilege to call this method since 2 3 code example // define the serviceprovider creation success callback function sprovidercallback provider { console log "the service provider was obtained" ; } // define the serviceprovider creation error callback function eprovidercallback error, state { console log error name ; console log "current asf service state " + state ; } // try to create the serviceprovider object try { webapis allshare serviceconnector createserviceprovider sprovidercallback, eprovidercallback ; } catch e { console log e message ; } deleteserviceprovider deletes a serviceprovider object void deleteserviceprovider optional successcallback? successcallback, optional serviceprovidererrorcallback? errorcallback ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters successcallback [optional][nullable] callback method to invoke if the request is successful errorcallback [optional][nullable] callback method to invoke if the request fails exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type notsupportederror, if this feature is not supported with error type invalidvalueserror, if any input parameter contains an invalid value with error type unknownerror, for any other error since 2 3 code example // you must already have a serviceprovider object var serviceprovider; // define the serviceprovider deletion success callback function sproviderdeletecallback { console log "the asf service provider has been deleted properly " ; } // define the serviceprovider deletion error callback function eproviderdeletecallback error, state { console log error name ; console log "the current asf service state " + state ; } // try to delete the serviceprovider object try { webapis allshare serviceconnector deleteserviceprovider sproviderdeletecallback, eproviderdeletecallback ; } catch e { console log e message ; } getserviceprovider returns a serviceprovider object that is connected to the allshare framework serviceprovider getserviceprovider ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare return value serviceprovider serviceprovider serviceprovider object connected to the allshare framework exceptions webapiexception with error type notsupportederror, if this feature is not supported with error type unknownerror, for any other error since 2 3 code example try { // you must already have a serviceprovider object var serviceprovider = webapis allshare serviceconnector getserviceprovider ; if serviceprovider == null { console log "service provider was not created properly" ; } } catch e { console log e message ; } 2 8 serviceprovider provides methods for obtaining a devicefinder object [nointerfaceobject] interface serviceprovider { devicefinder getdevicefinder ; servicestate getservicestate ; }; methods getdevicefinder returns the devicefinder object used to find allshare devices devicefinder getdevicefinder ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare return value devicefinder devicefinder devicefinder object exceptions webapiexception with error type notsupportederror, if this feature is not supported with error type unknownerror, for any other error since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; try { devicefinder = serviceprovider getdevicefinder ; } catch e { console log e name ; } getservicestate retrieves the current asf service state servicestate getservicestate ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare return value servicestate servicestate servicestate value exceptions webapiexception with error type notsupportederror, if this feature is not supported with error type unknownerror, for any other error since 2 3 code example // you must already have a serviceprovider object var serviceprovider; try { servicestate = serviceprovider getservicestate ; } catch e { console log e name ; } 2 9 devicediscoverycallback defines a generic callback for device discovery event notifications [callback, nointerfaceobject] interface devicediscoverycallback { void ondeviceadded device device ; void ondeviceremoved device device ; }; methods ondeviceadded callback method invoked when a new device appears on the network void ondeviceadded device device ; privilege level public privilege http //developer samsung com/privilege/allshare parameters device newly-discovered device exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with the expected type with error type notsupportederror, if this feature is not supported with error type invalidvalueserror, if any input parameter contains an invalid value with error type unknownerror, for any other error code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var monitoringcb = { ondeviceadded function device { console log "new device has appeared " + device name ; }, ondeviceremoved function device { console log "a device has disappeared " + device name ; } } try { var listenerid = serviceprovider getdevicefinder adddevicediscoverylistener monitoringcb ; } catch e { console log e name ; } ondeviceremoved callback method invoked when a device disappears from the network void ondeviceremoved device device ; privilege level public privilege http //developer samsung com/privilege/allshare parameters device device that has disappeared exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type notsupportederror, if this feature is not supported with error type invalidvalueserror, if any input parameter contains an invalid value with error type unknownerror, for any other error code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var monitoringcb = { ondeviceadded function device { console log "new device has appeared " + device name ; }, ondeviceremoved function device { console log "a device has disappeared " + device name ; } } try { var listenerid = serviceprovider getdevicefinder adddevicediscoverylistener monitoringcb ; } catch e { console log e name ; } 2 10 icon defines icon information [nointerfaceobject] interface icon { readonly attribute long depth; readonly attribute long height; readonly attribute long width; readonly attribute domstring mimetype; readonly attribute domstring iconuri; }; attributes readonly long depth icon color depth, in bits per pixel readonly long height icon height readonly long width icon width readonly domstring mimetype icon mime type readonly domstring iconuri icon uri 2 11 devicefinder provides methods for finding allshare devices [nointerfaceobject] interface devicefinder { device getdevice devicetype devicetype, deviceid id ; devicearray getdevicelist devicetype devicetype ; void refresh ; long adddevicediscoverylistener devicediscoverycallback devicediscoverycallback ; void removedevicediscoverylistener long devicediscoverylistener ; }; methods getdevice returns a device object with a specific device id and type device getdevice devicetype devicetype, deviceid id ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters devicetype device type i e mediaprovider id the unique id of the device return value device device device object exceptions webapiexception with error type notsupportederror, if this feature is not supported with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type unknownerror, for any other error since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var mediaproviderid; // the mediaprovider's device id is assumed to be known try { var devicefinder = serviceprovider getdevicefinder ; // get the mediaprovider device object var device = devicefinder getdevice "mediaprovider", mediaproviderid ; // print the device id console log device id ; } catch e { console log e name ; } getdevicelist lists the discovered devices with a specific device type devicearray getdevicelist devicetype devicetype ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters devicetype device type i e mediaprovider return value devicearray devicearray device array exceptions webapiexception with error type notsupportederror, if this feature is not supported with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type unknownerror, for any other error since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider try { var devicefinder = serviceprovider getdevicefinder ; var devices = devicefinder getdevicelist "mediaprovider" ; // print the number of available mediaprovider devices console log devices length ; } catch e { console log e name ; } refresh refreshes the list of devices on the network void refresh ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type notsupportederror, if this feature is not supported with error type invalidvalueserror, if any input parameter contains an invalid value with error type unknownerror, for any other error since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; try { var devicefinder = serviceprovider getdevicefinder ; var providers = devicefinder getdevicelist "mediaprovider" ; if providers length == 0 { // refresh the device list and retrieve the provider list again devicefinder refresh ; providers = devicefinder getdevicelist "mediaprovider" ; } } catch e { console log e name ; } adddevicediscoverylistener registers a device discovery event listener long adddevicediscoverylistener devicediscoverycallback devicediscoverycallback ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters devicediscoverycallback callback method invoked when a device discovery event occurs return value long long event listener id exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type notsupportederror, if this feature is not supported with error type invalidvalueserror, if any input parameter contains an invalid value with error type unknownerror, for any other error since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var monitoringcb = { ondeviceadded function device { console log "new device has appeared " + device name ; }, ondeviceremoved function device { console log "a device has disappeared " + device name ; } } try { var listenerid = serviceprovider getdevicefinder adddevicediscoverylistener monitoringcb ; } catch e { console log e name ; } removedevicediscoverylistener unregisters a device discovery event listener void removedevicediscoverylistener long devicediscoverylistener ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters devicediscoverylistener event listener id exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type notsupportederror, if this feature is not supported with error type invalidvalueserror, if any input parameter contains an invalid value with error type unknownerror, for any other error since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var listenerid; // listener id returned from adddevicediscoverylistener var monitoringcb = { ondeviceadded function device { console log "new device has appeared " + device name ; }, ondeviceremoved function device { console log "a device has disappeared " + device name ; } } try { var listenerid = serviceprovider getdevicefinder adddevicediscoverylistener monitoringcb ; serviceprovider getdevicefinder removedevicediscoverylistener listenerid ; } catch e { console log e name ; } 2 12 device retrieves information about a device [nointerfaceobject] interface device { readonly attribute deviceid id; readonly attribute devicedomain devicedomain; readonly attribute devicetype devicetype; readonly attribute iconarray iconarray; readonly attribute domstring ipaddress; readonly attribute domstring? modelname; readonly attribute domstring name; readonly attribute domstring nic; }; attributes readonly deviceid id unique device id readonly devicedomain devicedomain device domain readonly devicetype devicetype device type readonly iconarray iconarray device icons readonly domstring ipaddress device ipv4 address readonly domstring modelname [nullable] device model name readonly domstring name device name readonly domstring nic device nic network interface controller name 2 13 mediaprovidersuccesscallback defines the callback invoked when a provider object completes a retrieval operation successfully [callback=functiononly, nointerfaceobject] interface mediaprovidersuccesscallback { void onsuccess itemlist itemlist, boolean endofitems, deviceid providerid ; }; methods onsuccess callback method for a successful retrieval request void onsuccess itemlist itemlist, boolean endofitems, deviceid providerid ; privilege level public privilege http //developer samsung com/privilege/allshare parameters itemlist item list if there are no items, an empty list is returned endofitems end of items flag providerid provider device identifier code example //onsuccess searchcb var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var keyword = "foo"; // define a browse callback function searchcb list, endofitem, providerid { // retrieve the item list } function errorcb error, device { console log device + " raises " + error ; } // define a filter to browse videos only var filter = new webapis attributefilter "itemtype", null, {"video"} ; try { var providers = serviceprovider getdevicefinder getdevicelist "mediaprovider" ; if providers length > 0 { // search for the keyword in the first dms providers[0] search keyword, 0, 40, searchcb, errorcb, filter ; } } catch e { console log e message ; } 2 14 mediaprovidererrorcallback defines a generic error callback for provider-related operations [callback=functiononly, nointerfaceobject] interface mediaprovidererrorcallback { void onerror webapierror error, deviceid providerid ; }; methods onerror callback method invoked if an error occurs void onerror webapierror error, deviceid providerid ; privilege level public privilege http //developer samsung com/privilege/allshare parameters error object indicating the error type and message providerid provider device identifier code example //onerror errorcb var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var keyword = "foo"; // define a browse callback function searchcb list, endofitem, providerid { // retrieve the item list } function errorcb error, device { console log device + " raises " + error ; } // define a filter to browse videos only var filter = new webapis attributefilter "itemtype", null, {"video"} ; try { var providers = serviceprovider getdevicefinder getdevicelist "mediaprovider" ; if providers length > 0 { // search for the keyword in the first dms providers[0] search keyword, 0, 40, searchcb, errorcb, filter ; } } catch e { console log e message ; } 2 15 mediaprovider enables sharing media content between devices [nointerfaceobject] interface mediaprovider { readonly attribute boolean issearchable; readonly attribute item rootfolder; void browse item folderitem, unsigned long startindex, unsigned long requestcount, mediaprovidersuccesscallback browsecallback, optional mediaprovidererrorcallback? errorcallback, optional abstractfilter? browsefilter, optional sortmode? sortmode ; void search domstring keyword, unsigned long startindex, unsigned long requestcount, mediaprovidersuccesscallback successcallback, optional mediaprovidererrorcallback? errorcallback, optional abstractfilter? searchfilter ; }; attributes readonly boolean issearchable whether the provider supports the search capability readonly item rootfolder root folder object methods browse gets the item list in a folder at the specified starting index and count void browse item folderitem, unsigned long startindex, unsigned long requestcount, mediaprovidersuccesscallback browsecallback, optional mediaprovidererrorcallback? errorcallback, optional abstractfilter? browsefilter, optional sortmode? sortmode ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters folderitem folder startindex starting zero-based offset requestcount requested number of entries browsecallback callback invoked when the browse operation is successful it returns a set of items matching the filter errorcallback [optional][nullable] generic error callback for provider-related operations browsefilter [optional][nullable] browse filter to be applied parameters can include attributefilter objects constructed with "itemtype", null , itemtype[] sortmode [optional][nullable] sorting to use on the content list sorting by title, date, artist, or albumtitle attribute is only supported on the tizen web platform other web platforms ignore this parameter exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type notsupportederror, if this feature is not supported with error type invalidvalueserror, if any input parameter contains an invalid value with error type unknownerror, for any other error since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; // define a browse callback function browsecb list, endofitem, providerid { // retrieve the item list } function errorcb error, deviceid { console log error message ; } // define a filter to browse videos only var filter = new webapis attributefilter "itemtype", null, {"video"} ; // define a sort mode var mode = new webapis sortmode "title", "asc" ; try { var providers = serviceprovider getdevicefinder getdevicelist "mediaprovider" ; if providers length > 0 { // retrieves the first dms from the root folder providers[0] browse providers[0] rootfolder, 0, 10, browsecb, errorcb, filter, mode ; } } catch e { console log e message ; } search searches content for a specific keyword void search domstring keyword, unsigned long startindex, unsigned long requestcount, mediaprovidersuccesscallback successcallback, optional mediaprovidererrorcallback? errorcallback, optional abstractfilter? searchfilter ; product tv, av, b2b privilege level public privilege http //developer samsung com/privilege/allshare parameters keyword search keyword startindex starting zero-based offset requestcount requested number of entries successcallback callback to invoke when the search operation is successful it returns a set of items matching the filter errorcallback [optional][nullable] generic error callback for provider-related operations searchfilter [optional][nullable] filter applied to the search result parameters can include attributefilter objects constructed with "itemtype", null , itemtype[] exceptions webapiexception with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type notsupportederror, if this feature is not supported with error type invalidvalueserror, if any input parameter contains an invalid value with error type unknownerror, for any other error since 2 3 code example var serviceprovider = webapis allshare serviceconnector getserviceprovider ; var keyword = "foo"; // define a browse callback function searchcb list, endofitem, providerid { // retrieve the item list } function errorcb error, device { console log device + " raises " + error ; } // define a filter to browse videos only var filter = new webapis attributefilter "itemtype", null, {"video"} ; try { var providers = serviceprovider getdevicefinder getdevicelist "mediaprovider" ; if providers length > 0 { // search for the keyword in the first dms providers[0] search keyword, 0, 40, searchcb, errorcb, filter ; } } catch e { console log e message ; } 3 full webidl module asfservice { enum itemtype { "audio", "folder", "image", "unknown", "video" }; enum servicestate { "disabled", "enabled", "unknown" }; enum devicetype { "mediaprovider", "unknown" }; enum devicedomain { "local_network", "unknown" }; typedef domstring deviceid; typedef sequence<device> devicearray; typedef sequence<icon> iconarray; typedef sequence<item> itemlist; [constructor domstring uri, optional domstring mimetype, optional domstring title ] interface item { readonly attribute domstring albumtitle; readonly attribute domstring artist; readonly attribute date date; readonly attribute unsigned long long duration; readonly attribute domstring extension; readonly attribute double filesize; readonly attribute domstring genre; readonly attribute domstring mimetype; readonly attribute unsigned long? width; readonly attribute unsigned long? height; attribute domstring? subtitleuri; readonly attribute domstring? thumbnailuri; attribute domstring title; readonly attribute itemtype itemtype; readonly attribute domstring itemuri; readonly attribute boolean isrootfolder; readonly attribute itemcontentbuildtype contentbuildtype; }; [nointerfaceobject] interface webapiallshareobject { readonly attribute allshare allshare; }; webapi implements webapiallshareobject; [nointerfaceobject] interface allshare { }; [nointerfaceobject] interface serviceconnectorobject { attribute serviceconnector serviceconnector; }; allshare implements serviceconnectorobject; [callback=functiononly, nointerfaceobject] interface serviceprovidercreatesuccesscallback { void onsuccess serviceprovider serviceprovider ; }; [callback=functiononly, nointerfaceobject] interface serviceprovidererrorcallback { void onerror webapierror error, servicestate state ; }; [nointerfaceobject] interface serviceconnector { void createserviceprovider optional serviceprovidercreatesuccesscallback? successcallback, optional serviceprovidererrorcallback? errorcallback ; void deleteserviceprovider optional successcallback? successcallback, optional serviceprovidererrorcallback? errorcallback ; serviceprovider getserviceprovider ; }; [nointerfaceobject] interface serviceprovider { devicefinder getdevicefinder ; servicestate getservicestate ; }; [callback, nointerfaceobject] interface devicediscoverycallback { void ondeviceadded device device ; void ondeviceremoved device device ; }; [nointerfaceobject] interface icon { readonly attribute long depth; readonly attribute long height; readonly attribute long width; readonly attribute domstring mimetype; readonly attribute domstring iconuri; }; [nointerfaceobject] interface devicefinder { device getdevice devicetype devicetype, deviceid id ; devicearray getdevicelist devicetype devicetype ; void refresh ; long adddevicediscoverylistener devicediscoverycallback devicediscoverycallback ; void removedevicediscoverylistener long devicediscoverylistener ; }; [nointerfaceobject] interface device { readonly attribute deviceid id; readonly attribute devicedomain devicedomain; readonly attribute devicetype devicetype; readonly attribute iconarray iconarray; readonly attribute domstring ipaddress; readonly attribute domstring? modelname; readonly attribute domstring name; readonly attribute domstring nic; }; [callback=functiononly, nointerfaceobject] interface mediaprovidersuccesscallback { void onsuccess itemlist itemlist, boolean endofitems, deviceid providerid ; }; [callback=functiononly, nointerfaceobject] interface mediaprovidererrorcallback { void onerror webapierror error, deviceid providerid ; }; [nointerfaceobject] interface mediaprovider { readonly attribute boolean issearchable; readonly attribute item rootfolder; void browse item folderitem, unsigned long startindex, unsigned long requestcount, mediaprovidersuccesscallback browsecallback, optional mediaprovidererrorcallback? errorcallback, optional abstractfilter? browsefilter, optional sortmode? sortmode ; void search domstring keyword, unsigned long startindex, unsigned long requestcount, mediaprovidersuccesscallback successcallback, optional mediaprovidererrorcallback? errorcallback, optional abstractfilter? searchfilter ; }; };